Extracting Determinacy in Logic Programs

نویسندگان

  • Steven Dawson
  • C. R. Ramakrishnan
  • I. V. Ramakrishnan
  • R. C. Sekar
چکیده

Unnecessary backtracking is a principal source of ineeciency in Prolog execution. In order to avoid the overhead of the general backtracking mechanism, determinate programs should be executed deterministically. Achieving this requires an automatic means of extracting de-terminacy. We present a method in which determinacy is inferred from the success conditions and the calling contexts of predicates. Unlike previous approaches that rely on cuts or use a limited notion of test predicates, we propagate the conditions to detect determinacy, enabling us to handle a much larger class of programs. Since the conditions are propagated explicitly, the power of the method can be readily increased by increasing the expressiveness of these conditions. Moreover, our approach provides a uniform treatment of calling contexts and success conditions, and clearly spells out their roles in inferring determinacy. We also describe how de-terminacy information can be combined with state-of-the-art indexing techniques to eeciently realize the beneets of determinism.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Correct Reasoning about Logic Programs

In this PhD project, we present an approach to the problem of determinacy inference in logic programs with cut, which treats cut uniformly and contextually. The overall aim is to develop a theoretical analysis, abstract it to a suitable domain and prove both the concrete analysis and the abstraction correct in a formal theorem prover (Coq). A crucial advantage of this approach, besides the guar...

متن کامل

Determinacy Inference for Logic Programs

This paper presents a determinacy inference analysis for logic programs. The analysis infers determinacy conditions that, if satisfied by a call, ensures that it computes at most one answer and that answer is generated only once. The principal component of the technique is a goalindependent analysis of individual clauses. This derives a condition for a call that ensures only one clause in the m...

متن کامل

Determinacy and determinacy analysis

One attractive, unique feature of logic programming languages is their ability to succinctly and declaratively express search. The alternatives of a search can be speci ed by a set of clauses de ning the same predicate. By backtracking, considering in turn each of these clauses, the di erent alternatives are explored until a solution (if it exists) is found. However, though backtracking is esse...

متن کامل

An infinite-game semantics for well-founded negation in logic programming

We present an infinite-game characterization of the well-founded semantics for functionfree logic programs with negation. Our game is a simple generalization of the standard game for negationless logic programs introduced by van Emden [M.H. van Emden, Quantitative deduction and its fixpoint theory, Journal of Logic Programming 3(1):37–53, 1986] in which two players, the Believer and the Doubter...

متن کامل

Multi-Paradigm Logic Programming Call-by-Name Specialization of Functional Logic Programs

Partial evaluation is a method for program specialization based on fold/unfold transformations [4, 15]. Partial evaluation of functional programs uses only static values of given data to specialize the program. In logic programming, the so-called static/dynamic distinction is hardly present, whereas considerations of determinacy and choice points are far more important for control [7]. In this ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993